home *** CD-ROM | disk | FTP | other *** search
- property pTrackMember, pCollisionMap, pTerrainMap, pHeightMap, pCheckPointManager, pCountDownManager, pDustPuffManager, pSystemManager, pCarManager, pAIManager, pPowerUpManager, pSoundManager, pSpriteManager, pTrack, pCars, pScrollOffset, pShadowMap, pCameraManager, pRaceState, pThingsThatNeedAnUpdate, pThingsThatNeedADisplayUpdate, pThingsThatNeedAPhysicsUpdate, pLastPKeyMS, pMapSprite, pSteppedUntill, pStepSize, pDataHolder, pQuit, pTimeSlicesPassed
- global gMainManager
-
- on stopRace me
- pCarManager.stopRace()
- pCameraManager.stopRace()
- pSpriteManager.stopRace()
- pSoundManager.stopRace()
- pPowerUpManager.stopRace()
- pCountDownManager.stopRace()
- pDustPuffManager.stopRace()
- pThingsThatNeedAnUpdate = []
- pThingsThatNeedADisplayUpdate = []
- pThingsThatNeedAPhysicsUpdate = []
- return 0
- end
-
- on new me
- global gDebug1
- pLastPKeyMS = 0
- pThingsThatNeedAnUpdate = []
- pThingsThatNeedADisplayUpdate = []
- pThingsThatNeedAPhysicsUpdate = []
- pSpriteManager = script("spriteManager").new(me)
- pShadowMap = script("shadowmap").new()
- pHeightMap = script("heightmap").new()
- pDustPuffManager = script("dustpuffmanager").new(me)
- pDataHolder = script("dataholder").new(me)
- pAIManager = script("aimanager").new(me)
- pSoundManager = script("soundmanager").new(me)
- pCarManager = script("carManager").new(me)
- pCameraManager = script("cameraManager").new(me)
- pCountDownManager = script("countdownmanager").new(me)
- pCheckPointManager = script("checkpointmanager").new(me)
- pPowerUpManager = script("powerUpManager").new(me)
- pSystemManager = script("systemManager").new(me)
- pScrollOffset = point(0, 0)
- pMapSprite = sprite(10)
- pStepSize = 1000 / 30.0
- gDebug1 = me
- return me
- end
-
- on start me, tTrack
- global gTrackScale, gTimes, gTimesCount, gFrameCount, gFrameStart
- cursor(200)
- the updateLock = 1
- go("track")
- pTrack = tTrack
- gTrackScale = tTrack[#trackscale]
- pSystemManager.setupTrack(tTrack)
- pAIManager.setupTrack(tTrack)
- pCollisionMap = script("collisionmap").new(tTrack)
- pTerrainMap = script("terrainMap").new(tTrack)
- pSpriteManager.setupTrack(tTrack)
- pShadowMap.setupTrack(tTrack)
- pHeightMap.setupTrack(tTrack)
- pCarManager.setupTrack(tTrack)
- pCameraManager.setupTrack(tTrack)
- pCheckPointManager.setupTrack(tTrack)
- pDustPuffManager.setupTrack(tTrack)
- pCars = pCarManager.getCars()
- pPowerUpManager.setupTrack(tTrack)
- pRaceState = #starting
- pMapSprite.member = tTrack[#trackMember]
- pMapSprite.width = tTrack[#trackMember].width * gTrackScale
- pMapSprite.height = tTrack[#trackMember].height * gTrackScale
- script("tree").new(me, 1.25 * [1144, 692])
- script("tree").new(me, 1.25 * [430, 760])
- the updateLock = 0
- set the stageColor to the stageColor
- pCountDownManager.startCounting()
- pSteppedUntill = the milliSeconds
- gTimes = 0
- gTimesCount = 0
- gFrameCount = 0
- gFrameStart = the milliSeconds
- pQuit = 0
- end
-
- on leave me
- pSoundManager.leave()
- end
-
- on Update me, tTimeMultiplier
- if pRaceState = #racing then
- pSteppedUntill = max(pSteppedUntill, the milliSeconds - (4 * pStepSize))
- repeat while pSteppedUntill < the milliSeconds
- call(#stepPhysics, pThingsThatNeedAPhysicsUpdate)
- pSteppedUntill = pSteppedUntill + pStepSize
- pTimeSlicesPassed = pTimeSlicesPassed + 1
- end repeat
- end if
- if pRaceState <> #paused then
- call(#Update, pThingsThatNeedAnUpdate, tTimeMultiplier)
- call(#display, pThingsThatNeedADisplayUpdate, pScrollOffset)
- end if
- if keyPressed("r") then
- pQuit = 1
- t = gMainManager.getManager(#help)
- gMainManager.setManager(t, [#fadeoutspeed: 2, #image: (the stage).image])
- end if
- if keyPressed("p") then
- if pLastPKeyMS < (the milliSeconds - 300) then
- pLastPKeyMS = the milliSeconds
- if pRaceState = #racing then
- pRaceState = #paused
- else
- pRaceState = #racing
- pSteppedUntill = the milliSeconds
- end if
- end if
- end if
- if pQuit then
- me.stopRace()
- end if
- pMapSprite.loc = me.pScrollOffset
- end
-
- on startRace me
- pRaceState = #racing
- pUpdatedUntil = the milliSeconds
- pTimeSlicesPassed = 0
- end
-
- on getTimeElapsed me
- return pTimeSlicesPassed * pStepSize
- end
-
- on INeedAnUpdateEachFrame me, tThing
- pThingsThatNeedAnUpdate.append(tThing)
- end
-
- on IDontNeedAnUpdateEachFrame me, tThing
- pThingsThatNeedAnUpdate.deleteOne(tThing)
- end
-
- on INeedADisplayUpdateEachFrame me, tThing
- pThingsThatNeedADisplayUpdate.append(tThing)
- end
-
- on IDontNeedADisplayUpdateEachFrame me, tThing
- pThingsThatNeedADisplayUpdate.deleteOne(tThing)
- end
-
- on INeedAPhysicsUpdateEachFrame me, tThing
- pThingsThatNeedAPhysicsUpdate.append(tThing)
- end
-
- on IDontNeedAPhysicsUpdateEachFrame me, tThing
- pThingsThatNeedAPhysicsUpdate.deleteOne(tThing)
- end
-
- on getShadowMap me
- return pShadowMap
- end
-
- on getCollisionMap me
- return pCollisionMap
- end
-
- on getTerrainMap me
- return pTerrainMap
- end
-
- on getCheckPointManager me
- return pCheckPointManager
- end
-
- on getSoundManager me
- return pSoundManager
- end
-
- on getDataHolder me
- return pDataHolder
- end
-
- on getSystemManager me
- return pSystemManager
- end
-
- on getHeightMap me
- return pHeightMap
- end
-
- on getDustPuffManager me
- return pDustPuffManager
- end
-
- on getAIManager me
- return pAIManager
- end
-
- on getCarManager me
- return pCarManager
- end
-
- on getSpriteManager me
- return pSpriteManager
- end
-
- on setScrollOffset me, tScrollOffset
- pScrollOffset = tScrollOffset
- end
-